In [34]:
    
%load_ext autoreload
%autoreload 2
    
    
In [35]:
    
import matplotlib.pyplot as plt
%matplotlib inline
from plotter import StackHist, StackHistWithSignificance
from utils import ResultSet
    
In [36]:
    
rs_TTZ  = ResultSet("TTZ",  "../data_ichep/TTZToLLNuNu_treeProducerSusyMultilepton_tree.root")
rs_TTW  = ResultSet("TTW",  "../data_ichep/TTWToLNu_treeProducerSusyMultilepton_tree.root")
rs_TTH = ResultSet("TTH", "../data_ichep/TTHnobb_mWCutfix_ext1_treeProducerSusyMultilepton_tree.root")
rs_TTTT = ResultSet("TTTT", "../data_ichep/TTTT_ext_treeProducerSusyMultilepton_tree.root")
    
    
In [37]:
    
def stack(attr, ax, title, cls=StackHist, stack_signal=False, scale = None, **kwargs):
    hs = cls(title)
    hs.add_mc_background(getattr(rs_TTZ, attr), 'TTZ', lumi=rs_TTZ.lumi, plot_color='r')
    hs.add_mc_background(getattr(rs_TTW, attr), 'TTW', lumi=rs_TTW.lumi, plot_color='g')
    hs.add_mc_background(getattr(rs_TTH, attr), 'TTH', lumi=rs_TTH.lumi, plot_color='b')
    if scale is None:
        scale = 1 if stack_signal else 20
    hs.set_mc_signal(getattr(rs_TTTT,attr), 'TTTT', lumi=rs_TTTT.lumi, stack=stack_signal, scale=scale, plot_color='k')
    
    hs.luminosity = 40
    hs.energy = 13
    hs.logy=False
    hs.draw(ax, **kwargs, save=True)
    
The main discriminating variables in the analysis are Jet and B-Jet Multiplicities
Below are shown the distributions for the TTTT as well as relevant BG processes. The "baseline" selection for the trilepton channel is:
In [38]:
    
fig, ((ax0, ax1), (ax2, ax3)) = plt.subplots(2,2, figsize=(26,20), tight_layout=False)
stack('jet_count', ax0, 'Jet Multiplicity', cls=StackHistWithSignificance, high_cut_significance=True)
stack('jet_count_trilepton', ax1, 'Jet Multiplicity ($N_{lep}=3$)', cls=StackHistWithSignificance, high_cut_significance=True)
stack('jet_count_b_jet3', ax2, 'Jet Multiplicity ($N_{Jet_B}\ge3$)', cls=StackHistWithSignificance, scale=1, high_cut_significance=True)
stack('jet_count_z_mass_veto', ax3, 'Jet Multiplicity (Z-mass Veto)', cls=StackHistWithSignificance, scale=1, high_cut_significance=True)
    
    
In [39]:
    
fig, ((ax0, ax1), (ax2, ax3)) = plt.subplots(2,2, figsize=(26,20), tight_layout=False)
stack('b_jet_count', ax0, 'B-Jet Multiplicity', cls=StackHistWithSignificance, high_cut_significance=True)
stack('b_jet_count_trilepton', ax1, 'B-Jet Multiplicity ($N_{lep}=3$)', cls=StackHistWithSignificance, high_cut_significance=True)
stack('b_jet_count_b_jet3', ax2, 'B-Jet Multiplicity ($N_{Jet_B}\ge3$)', cls=StackHistWithSignificance, scale=1, high_cut_significance=True)
stack('b_jet_count_z_mass_veto', ax3, 'B-Jet Multiplicity (Z-mass Veto)', cls=StackHistWithSignificance, scale=1, high_cut_significance=True)
    
    
In [40]:
    
fig, ((ax0, ax1), (ax2, ax3)) = plt.subplots(2,2, figsize=(26,20), tight_layout=False)
stack('jet_count', ax0, 'Jet Multiplicity', cls=StackHistWithSignificance, high_cut_significance=True)
stack('jet_count_trilepton', ax1, 'Jet Multiplicity ($N_{lep}=3$)', cls=StackHistWithSignificance, high_cut_significance=True)
stack('jet_count_eem_trilepton', ax2, 'Jet Multiplicity ($e^+e^-\mu$)', cls=StackHistWithSignificance, high_cut_significance=True)
stack('jet_count_mme_trilepton', ax3, 'Jet Multiplicity ($\mu^+\mu^-e$)', cls=StackHistWithSignificance, high_cut_significance=True)
    
    
In [41]:
    
fig, ((ax0, ax1), (ax2, ax3)) = plt.subplots(2,2, figsize=(26,20), tight_layout=False)
stack('b_jet_count', ax0, 'B-Jet Multiplicity', cls=StackHistWithSignificance, high_cut_significance=True)
stack('b_jet_count_trilepton', ax1, 'B-Jet Multiplicity ($N_{lep}=3$)', cls=StackHistWithSignificance, high_cut_significance=True)
stack('b_jet_count_eem_trilepton', ax2, 'B-Jet Multiplicity ($e^+e^-\mu$)', cls=StackHistWithSignificance, high_cut_significance=True)
stack('b_jet_count_mme_trilepton', ax3, 'B-Jet Multiplicity ($\mu^+\mu^-e$)', cls=StackHistWithSignificance, high_cut_significance=True)